Morley, U.S. Pat. No. 3,959,776, issued May 25, 1976, disclosed a method and apparatus for printing locally stored formatted messages in which fetch commands were embedded in the format. Upon a given format being selected, the embedded commands were excised therefrom and executed against a stream of external supplied variable characters, which characters were then inserted within a message prior to printing.
Line-at-a-time printers are exemplified by Findley, U.S. Pat. No. 4,031,519, issued June 21, 1977 in which copies of a formatted page are modified by way of pre-stored character additions and delections locally within the printer. More particularly, characters assembled into a page within a whole page buffer can be repeatedly used to print the same page with slight changes in the different copies. Modification data is externally transmitted to the printer and buffer stored. As each line of the printer is readied for entry into the printing cycle, parts of the modification data indicating the copy number, line number, and print position of changes to be made are compared with the printer counterpart data. Changes are made where necessary by using new data from the modification data to replace the old data in the line to be printed. New data may include one or more blank characters. Blank characters are used to suppress data in the corresponding parts of the line to be printed.
Belleson et al, U.S. Pat. No. 4,300,206, "Flexible Test and Image Generator for a Raster Printer", issued Nov. 10, 1981, discloses a scrolling buffer of less than full page capacity into which doubly indexed characters are written in print serial order. A print read head is also depicted which asynchronously accesses the buffered characters at addresses suitably off set, also in print serial order, for imprinting on an advanceable print paper medium.
Many printers use a page size buffer within which they electronically assemble the characters which are subsequently read out by a print read head. Under these circumstances, it is not material in what arbitrary sequence the indexed characters are applied to the buffer. Since the buffer is usually a full page all points addressable RAM, the indices defining row and column starting address positions can be immediately used to write the character raster pattern into the buffer. However, where the buffer is constrained to substantially less than full page capacity, then a scrolling mode of writing into and reading the characters from the buffer must be used. To write into a scrolling buffer requires creation of a sorted order of characters prior to the writing.
As is also known from the Belleson patent, fonts of characters as raster subarrays are locally stored at the printer. A character sequence from a remote source to the printer subsystem includes indication of the font and a succession of code points corresponding to the characters. The data construct used by Belleson to represent this sorted order prior to buffer writing is a pair of linked lists. Indeed, the method for sorting an arbitrary sequence of doubly indexed characters into print serial order and for writing said sorted sequence into a buffer of less than full page capacity is the subject of a copending divisional application U.S. Ser. No. 06/241,321, filed Mar. 6, 1981 of the now issued Belleson patent.
The character received by the printing subsystem can be in the form of a code point and an ordered pair of numbers (indices) connoting row and column positions on a page. Writing of a character is generally the process of fetching a counterpart raster pattern from a local font store and writing it into a designated location defined by the indices within the buffer. These aspects are described more fully in the following portions of the specification or with reference to the Belleson patent and copending divisional application.
According to Belleson, the aforementioned linked lists are formed from sorting the received characters at the printing subsystem into groups according to their row index and then forming a threaded list of the characters in each group according to their column position. Print serial order is then represented by traversing the sequence defined by the lists.